<?php

define("__INIT__", QingPHP_PATH);

if (!file_exists(__APP__)) {
    mkdir(__APP__);

    $result = dir_copy(QingPHP_PATH . "/Init/initDir/", __APP__ . "/");
//    init_rename(__APP__ . "/", __APP__ . "/");
    print_r("项目:" . __APP__ . "初始化成功".PHP_EOL);
} 

if (file_exists(__APP__) && !file_exists(__ROOT__ . "/lock.txt")) {

    file_put_contents(__ROOT__ . "lock.txt", 1);
}

/**
 * 文件夹文件拷贝
 *
 * @param string $src 来源文件夹
 * @param string $dst 目的地文件夹
 * @return bool
 */
function dir_copy($src = '', $dst = '', $ext = ".ini")
{
    if (empty($src) || empty($dst)) {
        return false;
    }

    $dir = opendir($src);
    dir_mkdir($dst);
    while (false !== ($file = readdir($dir))) {
        if (($file != '.') && ($file != '..')) {
            if (is_dir($src . '/' . $file)) {
                dir_copy($src . '/' . $file, $dst . '/' . $file);
            } else {
                copy($src . '/' . $file, rtrim($dst . '/' . $file, $ext));
            }
        }
    }
    closedir($dir);

    return true;
}

function init_rename($src = '', $dst = '', $ext = ".ini")
{
    if (empty($src) || empty($dst)) {
        return false;
    }

    $dir = opendir($src);
    dir_mkdir($dst);
    while (false !== ($file = readdir($dir))) {
        if (($file != '.') && ($file != '..')) {
            if (is_dir($src . '/' . $file)) {
                init_rename($src . '/' . $file, $dst . '/' . $file);
            } else {
                if (strpos($file, $ext) !== false) {
                    continue;
                }
                copy($src . '/' . $file, $dst . '/' . rtrim($file, $ext));
                unlink($src . '/' . $file);
            }
        }
    }
    closedir($dir);

    return true;
}

/**
 * 创建文件夹
 *
 * @param string $path 文件夹路径
 * @param int $mode 访问权限
 * @param bool $recursive 是否递归创建
 * @return bool
 */
function dir_mkdir($path = '', $mode = 0777, $recursive = true)
{
    clearstatcache();
    if (!is_dir($path)) {
        mkdir($path, $mode, $recursive);
        return chmod($path, $mode);
    }

    return true;
}